package vaccine.appointment.system.user.vo;

import lombok.Data;
import vaccine.appointment.system.common.validation.IdCard;

import javax.validation.constraints.*;

/**
 * 创建工作人员请求
 */
@Data
public class CreateStaffRequest {
    /**
     * 账号
     */
    @NotBlank(message = "账号不能为空")
    @Size(min = 4, max = 20, message = "账号长度必须在4-20个字符之间")
    private String account;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空")
    @Size(min = 6, max = 20, message = "密码长度必须在6-20个字符之间")
    private String password;

    /**
     * 邮箱
     */
    @Email(message = "邮箱格式不正确")
    private String email;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空")
    @Size(max = 50, message = "姓名长度不能超过50个字符")
    private String name;

    /**
     * 年龄
     */
    @NotNull(message = "年龄不能为空")
    @Min(value = 18, message = "工作人员年龄不能小于18岁")
    @Max(value = 70, message = "工作人员年龄不能大于70岁")
    private Integer age;

    /**
     * 身份证号
     */
    @NotBlank(message = "身份证号不能为空")
    @IdCard(message = "身份证号格式不正确")
    private String idNum;

    /**
     * 身份信息
     * 1--接种点管理员
     * 2--超级管理员
     */
    @NotNull(message = "身份信息不能为空")
    @Min(value = 1, message = "身份信息必须为1或2")
    @Max(value = 2, message = "身份信息必须为1或2")
    private Integer identityInfo;

    /**
     * 所属接种点ID（仅接种点管理员需要）
     */
    private Integer vaccinationSiteId;
}

